#ifndef _CEVENT_H_
#define _CEVENT_H_
////////////////////////////////////////////////////////////
//	Filename:			CEvent.h
//
//	Date Created:		8/27/2011
//	File Creator:		Steven Broyles
//
//	Last Modified:		8/27/2011	
//	Modifier Initials:	SB
//
//	Description:		This class is a container for information 
//						that can be sent from one module to another. 
////////////////////////////////////////////////////////////

typedef int	EVENTID;

class CEvent
{
	friend class CEventSystem;

	EVENTID m_nEventID;
	int		m_nPriority;
	void*	m_pParam;

public:
	//Constructor
	CEvent(  ) : m_nEventID( 0 ), m_nPriority( 0 ), m_pParam( NULL ){  };

	CEvent( EVENTID _nEventID, void* _pParam, int _nPriority ) : m_nEventID( _nEventID ),
		m_pParam( _pParam ), m_nPriority( _nPriority ){  };
	
	//Destructor
	~CEvent(  ){  }

	/***************
	*  Accessors
	***************/
	EVENTID GetEventID( void )		const	{ return m_nEventID; }
	void*	GetParam( void )		const	{ return m_pParam; }
	int		GetPriority(  )			const	{ return m_nPriority; }

	/***************
	*  Mutators
	***************/
	void SetEventID( EVENTID val )	{ m_nEventID = val; }
	void SetParam( void* val )		{ m_pParam = val; }
	void SetPriority( int val )		{ m_nPriority = val; }
};

#endif	//_CEVENT_H_